#时间复杂度
# O(1)
# O(log n)
# O(n)


# 输入：[1,1,0,1,1,1]
# 输出：3
# 解释：开头的两位和最后的三位都是连续 1 ，所以最大连续 1 的个数是 3.
def compare485(l):
    count=0
    result=0
    for i in l:#循环变量数组，遇到1，count加1，
        if i==1:
            count+=1
        else:#如果遇到0就比较count和result，大的赋值给result，count清零
            result=max(result,count)
            count=0
    return max(result,count)



# 给定一个数组 nums，编写一个函数将所有 0 移动到数组的末尾，同时保持非零元素的相对顺序。
#
# 示例:
# 输入: [0,1,0,3,12]
# 输出: [1,3,12,0,0]
# 说明:
# 必须在原数组上操作，不能拷贝额外的数组。
# 尽量减少操作次数
def leetcode283(m):
    index=0
    for i in range(len(m)):#循环数组
        if m[i]!=0:#循环判断如果数字不等于0，则重新写到数组里下标从0开始
            m[index]=m[i]
            index+=1
    for j in range(len(m)):#循环判断，如果下标大于index，则全部写0
        if j>=index:
            m[j]=0
    return m

l=[1,1,1,0,1,0,1,1,1,1,1]
print(compare485(l))
m=[1,2,0,13,4,5,]
print(leetcode283(m))